Many computer systems have to cope with a diverse set of users requesting access to resources stored within systems. An example of users requesting access involves requests to access a directory-based file system. In this situation, access may be determined by defining access boundaries through analysis of a straightforward hierarchical convention involving the resource.
As an illustration, FIG. 1 depicts a directory-based file system having a straightforward hierarchical convention 500 wherein its items have one parent. The top-level directory “C:\” 502 occupies the top position in the directory hierarchy and is a hierarchical parent of the subdirectories “MYDIR” and “PUBLIC” (504 and 506). Subdirectory MYDIR 504 is itself a parent of the “TEST1.XLS” file 508. Subdirectory PUBLIC 506 is a parent of the “TEST2.XLS” file 510 and “TEST3.XLS” file 512. This type of directory hierarchical structure allows for relatively straightforward security access due in part to the single parent nature of the items in the hierarchy. However, security access issues substantially increase in difficulty when a computer system involves more complex items and relationships.
A multithreaded object server may support multiple, concurrent users that make requests for various defined object types. For example, an object may be a meta-data object stored in a meta-data repository. In a large-scale production server, the sheer number of objects, coupled with the volume of requests can be enormous. This can impact scalability, especially when factoring in the authorization overhead for each requested object.